package br.com.guj.hibernate.model;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Extensao implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 3691853461759408224L;

	@Id
	@GeneratedValue
	private Long id;

	@Column(name = "extensao", unique = true)
	private String tipo;

	@OneToMany(mappedBy = "extensao", fetch = FetchType.LAZY)
	private Set<Arquivo> arquivos = new HashSet<Arquivo>();

	public Extensao() {
	}

	/**
	 * @param arquivo
	 */
	public void addArquivo(Arquivo arquivo) {
		arquivo.setExtensao(this);
		this.getArquivos().add(arquivo);
	}

	/**
	 * @param tipo
	 */
	public Extensao(String tipo) {
		this.tipo = tipo;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public Set<Arquivo> getArquivos() {
		return arquivos;
	}

	public void setArquivos(Set<Arquivo> arquivos) {
		this.arquivos = arquivos;
	}
}
